package ro.flashbite.utils.allocator
{
	import ro.flashbite.interfaces.IDestroyable;

	/**
	 * Interface for object pooling
	 * 
	 * v 1.0
	 *  
	 * @author Adrian Barbu
	 */	
	internal interface IAllocator extends IDestroyable
	{
		function allocate()						:*;
		function free(obj:*)					:void;
		function fill(increaseCachedBy:uint)	:void;
		
		function get usedCount()				:uint;
		function get cachedCount()				:uint;
		function get maxAllowedToCreate()		:uint;
	}
}